8c97b851facbbb14d7d47d128679ded9dad99776,retrofit-adapters/guava/src/main/java/retrofit2/adapter/guava/GuavaCallAdapterFactory.java,GuavaCallAdapterFactory,get,#Type#Annotation[]#Retrofit#,40

Before Change



  @Override
  public CallAdapter<?> get(Type returnType, Annotation[] annotations, Retrofit retrofit) {
    if (TypeToken.of(returnType).getRawType() != ListenableFuture.class) {
      return null;
    }
    if (!(returnType instanceof ParameterizedType)) {
      throw new IllegalStateException("ListenableFuture return type must be parameterized"
          + " as ListenableFuture<Foo> or ListenableFuture<? extends Foo>");
    }
    Type innerType = ((ParameterizedType) returnType).getActualTypeArguments()[0];
    if (innerType instanceof WildcardType) {
      innerType = ((WildcardType) innerType).getUpperBounds()[0];
    }

After Change


      throw new IllegalStateException("ListenableFuture return type must be parameterized"
          + " as ListenableFuture<Foo> or ListenableFuture<? extends Foo>");
    }
    Type innerType = getParameterUpperBound(0, (ParameterizedType) returnType);

    if (getRawType(innerType) != Response.class) {
      // Generic type is not Response<T>. Use it for body-only adapter.